export interface dependency {
  id?: string
  checked?: boolean
  name?: string
  description?: string
  componentName?: string
  componentDescription?: string
}
export interface typeListData {
  type?: any
  description?: string
  id?: string
}
export interface dependencyData {
  groupName: string
  dependencyList: Array<dependency>
}
export interface addTableForm {
  tableName?: string
  description?: string
}
export interface addFieldsForm {
  domainObjectClassName?: string
  domainTransferObjectClassName?: string
}
export interface fields {
  comment?: string
  domainObjectFieldName?: string
  domainObjectFieldType?: string
  domainTransferObjectFieldName?: string
  domainTransferObjectFieldType?: string
  foreignFieldId?: string
  id?: string
  moduleId?: string
  nullField?: boolean
  primaryKey?: boolean
  projectId?: string
  tableFieldLength?: string
  tableFieldName?: string
  tableFieldType?: string
  tableId?: string
  tableName?: string
}
export interface moduleTables {
  description?: string
  domainObjectClassName?: string
  domainTransferObjectClassName?: string
  fields: Array<fields>
  id?: string
  moduleId?: string
  newTable?: boolean
  projectId?: string
  success?: boolean
  tableName?: string
  type?: string
}
export const fieldsDefaultData = [
  {
    comment: '',
    domainObjectFieldName: 'id',
    domainObjectFieldType: '',
    domainTransferObjectFieldName: 'id',
    domainTransferObjectFieldType: '',
    foreignFieldId: '',
    id: '',
    moduleId: '',
    nullField: false,
    primaryKey: true,
    projectId: '',
    tableFieldLength: '36',
    tableFieldName: 'id',
    tableFieldType: '',
    tableId: '',
    tableName: ''
  },
  {
    comment: '',
    domainObjectFieldName: 'createBy',
    domainObjectFieldType: '',
    domainTransferObjectFieldName: 'createBy',
    domainTransferObjectFieldType: '',
    foreignFieldId: '',
    id: '',
    moduleId: '',
    nullField: false,
    primaryKey: false,
    projectId: '',
    tableFieldLength: '50',
    tableFieldName: 'create_by',
    tableFieldType: '',
    tableId: '',
    tableName: ''
  },
  {
    comment: '',
    domainObjectFieldName: 'createName',
    domainObjectFieldType: '',
    domainTransferObjectFieldName: 'createName',
    domainTransferObjectFieldType: '',
    foreignFieldId: '',
    id: '',
    moduleId: '',
    nullField: false,
    primaryKey: false,
    projectId: '',
    tableFieldLength: '36',
    tableFieldName: 'create_name',
    tableFieldType: '',
    tableId: '',
    tableName: ''
  },
  {
    comment: '',
    domainObjectFieldName: 'createTime',
    domainObjectFieldType: '',
    domainTransferObjectFieldName: 'createTime',
    domainTransferObjectFieldType: '',
    foreignFieldId: '',
    id: '',
    moduleId: '',
    nullField: false,
    primaryKey: false,
    projectId: '',
    tableFieldLength: '20',
    tableFieldName: 'create_time',
    tableFieldType: '',
    tableId: '',
    tableName: ''
  },
  {
    comment: '',
    domainObjectFieldName: 'updateBy',
    domainObjectFieldType: '',
    domainTransferObjectFieldName: 'updateBy',
    domainTransferObjectFieldType: '',
    foreignFieldId: '',
    id: '',
    moduleId: '',
    nullField: false,
    primaryKey: false,
    projectId: '',
    tableFieldLength: '50',
    tableFieldName: 'update_by',
    tableFieldType: '',
    tableId: '',
    tableName: ''
  },
  {
    comment: '',
    domainObjectFieldName: 'updateTime',
    domainObjectFieldType: '',
    domainTransferObjectFieldName: 'updateTime',
    domainTransferObjectFieldType: '',
    foreignFieldId: '',
    id: '',
    moduleId: '',
    nullField: false,
    primaryKey: false,
    projectId: '',
    tableFieldLength: '20',
    tableFieldName: 'update_time',
    tableFieldType: '',
    tableId: '',
    tableName: ''
  },
  {
    comment: '',
    domainObjectFieldName: 'updateName',
    domainObjectFieldType: '',
    domainTransferObjectFieldName: 'updateName',
    domainTransferObjectFieldType: '',
    foreignFieldId: '',
    id: '',
    moduleId: '',
    nullField: false,
    primaryKey: false,
    projectId: '',
    tableFieldLength: '50',
    tableFieldName: 'update_name',
    tableFieldType: '',
    tableId: '',
    tableName: ''
  }
]
export interface dataSourcesHeaders {
  'name'?: string
  'type'?: string
  'value'?: string
}
export interface dataSources {
  'type'?: string
  'common'?: string
  'dataSourceId'?: string
  'uniqueName'?: string
  'requestURL'?: string
  'requestURLType'?: string
  'requestMethod'?: string
  'description'?: string
  'headers': Array<dataSourcesHeaders>
  'params'?: string
  'data'?: string
  'configHandlerCode'?: string
  'dataHandlerCode'?: string
  'errorHandlerCode'?: string
  'dataSetEnabled'?: boolean
  'dataSets'?: Array<any>
}
export interface formConfig {
  widgetList: Array<any>
  formConfig: {
    modelName?: string
    refName?: string
    rulesName?: string
    labelWidth?: number | string
    labelPosition?: string
    size?: string
    labelAlign?: string
    cssCode?: string
    customClass?: string
    functions?: string
    layoutType?: string
    jsonVersion?: number | string
    dataSources: Array<dataSources>
    onFormCreated?: string
    onFormMounted?: string
    onFormDataChange?: string
  }
}
export interface addFormData {
  name?: string
  dsModel?: string | number
  description?: string

}
export interface addFormParams {
  scaffoldType?: string
  scaffoldTypeName?: string
  id?: string
  json?: string
  moduleId?: string
  url?: string
}
export interface addProParams {
  scaffoldType?: string
  scaffoldTypeName?: string
  id?: string
  json?: string
  moduleId?: string
  dependencies?: Array<any>
  moduleTables?: Array<any>
}
